home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 05.zip / BS1 part 5 / SASC_6.0_Disk_3.adf / Compiler_headers / Include / string.h < prev    next >
C/C++ Source or Header  |  1992-07-30  |  5KB  |  214 lines

  1. /* Copyright (c) 1992 SAS Institute, Inc., Cary, NC USA */
  2. /* All Rights Reserved */
  3.  
  4.  
  5. #ifndef _STRING_H
  6. #define _STRING_H 1
  7.  
  8. #ifndef _SIZE_T
  9. #define _SIZE_T 1
  10. typedef unsigned int size_t;
  11. #endif
  12.  
  13. #ifndef NULL
  14. #define NULL  0L
  15. #endif
  16.  
  17.  
  18. /***
  19. *
  20. *     ANSI copying functions
  21. *
  22. ***/
  23.  
  24. extern void *memcpy(void *, const void *, size_t);
  25. extern void *memmove(void *, const void *, size_t);
  26. extern char *strcpy(char *, const char *);
  27. extern char *strncpy(char *, const char *, size_t);
  28.  
  29.  
  30. /***
  31. *
  32. *     ANSI concatenation functions
  33. *
  34. ***/
  35.  
  36. extern char *strcat(char *, const char *);
  37. extern char *strncat(char *, const char *, size_t);
  38.  
  39.  
  40. /***
  41. *
  42. *     ANSI comparison functions
  43. *
  44. ***/
  45.  
  46. extern int memcmp(const void *, const void *, size_t);
  47. extern int strcmp(const char *, const char *);
  48. extern int strcoll(const char *, const char *);
  49. extern int strncmp(const char *, const char *, size_t);
  50. extern size_t strxfrm(char *, const char *, size_t);
  51.  
  52.  
  53. /***
  54. *
  55. *     ANSI search functions
  56. *
  57. ***/
  58.  
  59. extern void *memchr(const void *, int, size_t);
  60. extern char *strchr(const char *, int);
  61. extern size_t strcspn(const char *, const char *);
  62. extern char *strpbrk(const char *, const char *);
  63. extern char *strrchr(const char *, int);
  64. extern size_t strspn(const char *, const char *);
  65. extern char *strstr(const char *, const char *);
  66. extern char *strtok(char *, const char *);
  67.  
  68.  
  69. /***
  70. *
  71. *     ANSI miscellaneous functions
  72. *
  73. ***/
  74.  
  75. extern void *memset(void *, int, size_t);
  76. extern char *strerror(int);
  77. extern size_t strlen(const char *);
  78.  
  79. #ifndef _STRICT_ANSI
  80.  
  81. /***
  82. *
  83. *     SAS string and memory functions.
  84. *
  85. ***/
  86.  
  87. extern int stcarg(char *, char *);
  88. extern int stccpy(char *, char *, int);
  89. extern int stcgfe(char *, char *);
  90. extern int stcgfn(char *, char *);
  91. extern int stcis(char *, char *);
  92. extern int stcisn(char *, char *);
  93. extern int __stcd_i(const char *, int *);
  94. extern int __stcd_l(const char *, long *);
  95. extern int stch_i(char *, int *);
  96. extern int stch_l(char *, long *);
  97. extern int stci_d(char *, int);
  98. extern int stci_h(char *, int);
  99. extern int stci_o(char *, int);
  100. extern int stcl_d(char *, long);
  101. extern int __stcl_h(char *, long);
  102. extern int __stcl_o(char *, long);
  103. extern int stco_i(char *, int *);
  104. extern int stco_l(char *, long *);
  105. extern int stcpm(char *, char *, char **);
  106. extern int stcpma(char *, char *);
  107. extern int stcsma(char *, char *);
  108. extern int astcsma(char *, char *);
  109. extern int stcu_d(char *, unsigned);
  110. extern int __stcul_d(char *, unsigned long);
  111.  
  112. #define stclen(a) strlen(a)
  113.  
  114. extern char *stpblk(char *);
  115. extern char *stpbrk(char *, char *);
  116. extern char *stpchr(char *, int);
  117. extern char *stpcpy(char *, char *);
  118. extern char *__stpcpy(char *, char *);
  119. extern char *stpdate(char *, int, char *);
  120. extern char *stpsym(char *, char *, int);
  121. extern char *stptime(char *, int, char *);
  122. extern char *stptok(char *, char *, int, char *);
  123.  
  124. extern int strbpl(char **, int, char *);
  125. extern int stricmp(char *, char *);
  126. extern char *strdup(char *);
  127. extern void strins(char *, char *);
  128. extern int strmid(char *, char *, int, int);
  129. extern char *__strlwr(char *);
  130. extern void strmfe(char *, char *, char *);
  131. extern void strmfn(char *, char *, char *, char *, char *);
  132. extern void strmfp(char *, char *, char *);
  133. extern int strnicmp(char *, char *, size_t);
  134. extern char *strnset(char *, int, int);
  135.  
  136. extern char *stpchrn(char *, int);
  137. extern char *strrev(char *);
  138. extern char *strset(char *, int);
  139. extern void strsfn(char *, char *, char *, char *, char *);
  140. extern char *__strupr(char *);
  141. extern int stspfp(char *, int *);
  142. extern void strsrt(char *[], int);
  143.  
  144. extern int stcgfp(char *, char *);
  145.  
  146. #define strcmpi stricmp        /* For Microsoft compatibility */
  147. #define strlwr  __strlwr
  148. #define strupr  __strupr
  149. #define stcd_i __stcd_i
  150. #define stcd_l __stcd_l
  151. #define stcl_h __stcl_h
  152. #define stcl_o __stcl_o
  153. #define stcul_d __stcul_d
  154. #define stpcpy __stpcpy
  155.  
  156. extern void *memccpy(void *, void *, int, unsigned);
  157. extern void movmem(void *, void *, unsigned);
  158. extern void repmem(void *, void *, size_t, size_t);
  159. extern void setmem(void *, unsigned, int);
  160. extern void __swmem(void *, void *, unsigned);
  161. #define swmem  __swmem
  162.  
  163. /* for BSD compatibility */
  164. #define index(a,b) strchr(a,b)
  165. #define rindex(a,b) strrchr(a,b)
  166. #define bcopy(a,b,c) memmove(b,a,c)
  167. #define bcmp(a,b,c) memcmp(a,b,c)
  168. #define bzero(a,b) memset(a,0,b)
  169.  
  170. #endif /* _STRICT_ANSI */
  171.  
  172. /**
  173. *
  174. * Builtin function definitions
  175. *
  176. **/
  177.  
  178. extern size_t  __builtin_strlen(const char *);
  179. extern int     __builtin_strcmp(const char *, const char *);
  180. extern char   *__builtin_strcpy(char *, const char *);
  181.  
  182. extern void   *__builtin_memset(void *, int, size_t);
  183. extern int     __builtin_memcmp(const void *, const void *, size_t);
  184. extern void   *__builtin_memcpy(void *, const void *, size_t);
  185.  
  186. extern int __builtin_max(int, int);
  187. extern int __builtin_min(int, int);
  188. extern int __builtin_abs(int);
  189.  
  190. #ifdef USE_BUILTIN_MATH
  191. /* if you want the builtin versions of abs(), max(), and mix() */
  192. /* define USE_BUITLIN_MATH, and #include this file BEFORE math.h */
  193. #ifndef max
  194. #define max(a,b) __builtin_max(a,b)
  195. #endif
  196. #ifndef min
  197. #define min(a,b) __builtin_min(a,b)
  198. #endif
  199. #ifndef abs
  200. #define abs(a) __builtin_abs(a)
  201. #endif
  202. #endif
  203.  
  204. #define strlen(a)   __builtin_strlen(a)
  205. #define strcmp(a,b) __builtin_strcmp(a,b)
  206. #define strcpy(a,b) __builtin_strcpy(a,b)
  207.  
  208. #define memset(a,b,c) __builtin_memset(a,b,c)
  209. #define memcmp(a,b,c) __builtin_memcmp(a,b,c)
  210. #define memcpy(a,b,c) __builtin_memcpy(a,b,c)
  211.  
  212.  
  213. #endif
  214.